package top.lixunda.ecommerce.server.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import top.lixunda.ecommerce.server.user.api.entity.db.UserMenuDO;

import java.util.List;

/**
 * 用户菜单权限视图 服务类
 *
 * @author Lixunda
 * @since 2020-04-26
 */
public interface IUserMenuService extends IService<UserMenuDO> {

    /**
     * 查询当前登陆用户拥有权限的所有菜单目录信息
     *
     * @return 所有菜单目录信息
     */
    List<UserMenuDO> queryAll();

    /**
     * 根据菜单编码查询当前登陆用户拥有权限的某一个子系统的菜单目录
     *
     * @param menuCode 菜单编码，唯一索引
     * @return 该子系统的菜单目录信息
     */
    List<UserMenuDO> queryOneRootAllByCode(String menuCode);

    /**
     * 根据父节点id获取当前登陆用户拥有权限的子类节点列表
     *
     * @param id 父节点id
     * @return 子节点列表
     */
    List<UserMenuDO> queryChildrenByParentId(Integer id);

    /**
     * 查询首层节点
     *
     * @return 首层节点
     */
    List<UserMenuDO> queryRoots();
}
